{$CLEO .cm}
{$USE cleo+}


0000:
model.Load(#ak47)
model.Load(#MP5LNG)
model.Load(#DESERT_EAGLE)
model.Load(#CHROMEGUN)
model.Load(#MICRO_UZI)
model.Load(#SAWNOFF)
model.Load(#SHOTGSPA)
model.Load(#COLT45)
model.Load(#TEC9)
model.Load(#BAT)
load_requested_models

const
weapon_nitestick = 3 
weapon_Brass_Knuckles =  1
weapon_knifer    = 4
weapon_Batty      =    5
weapon_sword     =    8
weapon_chainsaw      =    9
weapon_shovel    =    6
weapon_pistol      =    22
weapon_eagle      =    24 
weapon_shotgun  =    25 
weapon_combatshotgun    =    27
weapon_sawnoff    =    26
weapon_microUZI    =    28 
weapon_mp5    =    29 
weapon_tec9    =   32
weapon_ak47  =    30
weapon_m4  =    31
weapon_country_gun  =    33
weapon_sniper  =    34
weapon_minigun  =    38
weapon_flamethrower  =    37
weapon_spray_paint =    41 
weapon_Fire_Extinguisher  =    42 
weapon_RPG =   31       //weapon_RPG =   35
weapon_Heatseek = 36 
weapon_silcener = 23
end  

const
    mission_has_failed = 1000@ 
    dialog_completed = 1001@ 
    npc = 1002@
    motor_vehicle = 1003@ 
      delay_random_target  = 900@  
     delay_zombie_voice   = 901@   
     wave_weapon       = 902@  
     wave_health       = 903@  
     wave_skin         = 904@  
     wave_attack_rate    = 905@  
     wave_skill          = 906@  
     wave_Accuracy       = 907@  
     wave_no_erupted       = 908@  
     wave_headshot           = 909@  
     wave_noanims             = 910@  
     wave_fightingstyle       = 911@  
     wave_bulletproof       = 912@ 
     wave_fireproof             = 913@ 
     wave_explosionproof        = 914@ 
     wave_collisionproof        = 915@ 
     wave_meleeproof          = 916@ 
     wave_drown                 = 917@ 
     wave_bleed                = 918@ 
     wave_marker                  = 919@ 
     wave_dont_chase_target          = 920@ 
     wave_kill_player_instantly   = 921@ 
     wave_decision_maker       = 922@ 
     wave_money                 = 923@ 
     wave_no_interupted           = 924@ 
   wave_walkstyles = 925@v 

  audio = 925@  
                 {
       juggerunut_delay_despawn_time = 0
       juggerunut_active = 0 
       BRUTE_HEALTH = 3000
       BRUTE_Accuracy = 70
       BRUTE_attack_rate = 70
       BRUTE_skin = #WMYBOUN  }  
end 
    //Defaults
    audio=audiostream.Load( "cleo\[@railcity]\trackdrop\name.wav")
      wave_weapon           = 31
      wave_health           = 300
     // wave_skin             = #MAFFA
      wave_attack_rate      = 70
      wave_skill            = 1
      wave_Accuracy         = 40
      wave_no_interupted    = 0 
      wave_headshot         = 0 
      wave_noanims          = 0
      wave_fightingstyle    = 7
      wave_bulletproof      = 0 
      wave_fireproof        = 0 
      wave_explosionproof   = 0 
      wave_collisionproof   = 0 
      wave_meleeproof       = 0 
      wave_drown            = 0                                                     
      wave_bleed            = 1 
      wave_marker            = 2 
      wave_dont_chase_target = 0
      wave_money = 0 
     wave_walkstyles = "player" 
mission_has_failed = 0 
dialog_completed = 0 

060A: create_decision_maker_type 2 store_to 425@ // decision\allowed\m_.ped files
07E5: copy_decision_maker 425@ to 426@

//start 

show_styled_text "~w~Start mission!" 3000 2 

fade 0 1000
wait 1000
fade 1 1000
actor_remove_from_car_and_put_at player1   -1683.3763 -3489.1895 11.2645
actor.Angle(player1)=  182.9929
gosub @spawn_player2  
0395: clear_area 1 at  377.0152 -4413.3467 12.2808  radius 999999999.0

//Base

// 0085: 13@ = 12@ // (int)

:BeginMission
wait 0
gosub @mission_status
if mission_has_failed==1
then
   jump @CloseDowntheMission 
end
model.Load(#COPCARVG) 
model.Load(#LAFD1)  
model.Load(#LAPD1)  
model.Load(#MAFFA)  
model.Load(#MAFFb)  
if and 
model.Available(#COPCARVG) 
model.Available(#LAFD1)  
model.Available(#LAPD1)  
model.Available(#MAFFA)  
model.Available(#MAFFb) 
jf @BeginMission 
const
    VehicleDropper = 200@
    Location = 199@ 
    
    marker1=244@
    marker2=245@
    marker3=246@
    marker4=247@
    marker5=248@
    marker6=249@
    marker7 =250@
    marker8=251@
    team=24
end
 
    300@ = car.Create(#COPCARVG, -2381.2856, -3804.5251, 10.9021)
    car.Angle(300@)=271.9606
    0085: motor_vehicle = 300@ // (int)
    gosub @CAR_STATS
    301@ = car.Create(#COPCARVG, -2307.4263, -3804.2705, 10.9021)
    car.Angle(301@)=268.507
    0085: motor_vehicle = 301@ // (int)
    gosub @CAR_STATS
    302@ = car.Create(#COPCARVG,-2207.5605, -3792.9067, 10.9021 )
    car.Angle(302@)=115.3209
    0085: motor_vehicle = 302@ // (int)
    gosub @CAR_STATS
    303@ = car.Create(#COPCARVG,-2173.5374, -3839.0999, 10.9021 )
    car.Angle(303@)=178.5932
    0085: motor_vehicle = 303@ // (int)
    gosub @CAR_STATS
    303@ = car.Create(#COPCARVG,-2114.7124, -3787.7622, 10.9021 )
    car.Angle(303@)=84.5695
    0085: motor_vehicle = 303@ // (int)
    gosub @CAR_STATS
    303@ = car.Create(#COPCARVG, -2047.7621, -3803.1379, 10.9021)
    car.Angle(303@)=284.7065
    0085: motor_vehicle = 303@ // (int)
    gosub @CAR_STATS
    303@ = car.Create(#COPCARVG, -2167.6567, -3705.0315, 10.8721)
    car.Angle(303@)=89.1934
    0085: motor_vehicle = 303@ // (int)
    gosub @CAR_STATS
    303@ = car.Create(#COPCARVG, -2167.4119, -3691.2144, 10.8721)
    car.Angle(303@)=134.1744
    0085: motor_vehicle = 303@ // (int)
    gosub @CAR_STATS
    303@ = car.Create(#COPCARVG,-2132.8655, -3692.3474, 10.8721 )
    car.Angle(303@)=103.7555
    0085: motor_vehicle = 303@ // (int)
    gosub @CAR_STATS
    303@ = car.Create(#COPCARVG, -2564.4263, -3788.6831, 10.8788)
    car.Angle(303@)=265.6695
    0085: motor_vehicle = 303@ // (int)
    gosub @CAR_STATS
    303@ = car.Create(#COPCARVG, -2475.6221, -3897.6086, 10.8788)
    car.Angle(303@)=182.9525
    0085: motor_vehicle = 303@ // (int)
    gosub @CAR_STATS
    1@ = actor.Create( team , #MAFFA , -2415.552, -3866.176, 11.208 )
    actor.Angle(1@)=96.7738
    0085: npc = 1@ // (int)
    gosub @npc_enemy_setup
    2@ = actor.Create( team , #MAFFb , -2415.5449, -3861.657, 11.208 )
    actor.Angle(2@)=78.1403
    0085: npc = 2@ // (int)
    gosub @npc_enemy_setup
    3@ = actor.Create( team , #MAFFA , -2418.5132, -3860.8562, 11.208 )
    actor.Angle(3@)=101.4651
    0085: npc = 3@ // (int)
    gosub @npc_enemy_setup
    4@ = actor.Create( team , #MAFFA , -2419.3604, -3865.6646, 11.208 )
    actor.Angle(4@)=87.6765
    0085: npc = 4@ // (int)
    gosub @npc_enemy_setup
    
   show_text_highpriority "Destroy ~r~8 Bikes~w~." 6000    
   while true
        wait 0
        gosub @mission_status
        if mission_has_failed==1
        then
           jump @CloseDowntheMission 
        end 
   
  
   end 
show_styled_text "~y~Mission Success!" 3000 2 
jump @CloseDowntheMission 

//Subs

:mission_status 
if car_defined  VehicleDropper
then
   $truck_health = car.Health(VehicleDropper )
   if or 
   $truck_health <=0
   car.Wrecked(VehicleDropper )
   02BF:   car VehicleDropper sunk
   then
       show_styled_text "~r~Truck destroyed!" 3000 2 
   end

end
    if wasted_or_busted
    then
       show_styled_text "~r~Mission Failed!" 3000 2 
       mission_has_failed = 1 
    end 
    if cheat "exit"
    then
     show_styled_text "~w~Mission Aborted!" 3000 2 
       mission_has_failed = 1 
    end
return


//Speak

:TestDail
if dialog_completed==0
then
show_text_highpriority "Yo, what's up homie?" 3000
wait 3000
show_text_highpriority "I wanna tell you something." 3000
wait 3000
show_text_highpriority "Go down there and pickup drugs, okay?" 3000
wait 3000
show_text_highpriority "Enjoy the mission." 3000
wait 3000
dialog_completed=1 
end 
cleo_return 0
 
//Player 2 spawn 

:spawn_player2 
if coop
return_if_false
04C4: store_coords_to 40@ 41@ 42@ from_actor player1 with_offset 1.0 0.0 -1.0
43@=actor.Angle(player1)
actor.Angle(player2)=43@
actor_remove_from_car_and_put_at   player2   40@ 41@ 42@

return  

//cleanup 
:CloseDowntheMission 
065C: release_decision_maker 426@
model.destroy(#ak47)
model.destroy(#MP5LNG)
model.destroy(#DESERT_EAGLE)
model.destroy(#CHROMEGUN)
model.destroy(#MICRO_UZI)
model.destroy(#SAWNOFF)
model.destroy(#SHOTGSPA)
model.destroy(#COLT45)
model.destroy(#TEC9)

 
marker.Disable(Location)
audiostream.Release(audio)
fade 0 1000
wait 1000
fade 1 1000
mission_cleanup
end_Thread 

:CAR_STATS
if car_defined motor_vehicle
return_if_false
      car.Health(motor_vehicle)=30000
      09C4: set_car motor_vehicle gas_tank_explosion_enabled 0
      0397: enable_car motor_vehicle siren 1

return 

:npc_enemy_setup
if actor_defined  npc
return_if_false 
       0209: 777@ = random_int_in_ranges 0 8
       if  777@==0
       then
         actor.GiveWeaponAndAmmo( npc,ak47  ,999999)
       end
       if  777@==1
       then
         actor.GiveWeaponAndAmmo( npc, pistol ,999999)
       end
       if  777@==2
       then
         actor.GiveWeaponAndAmmo( npc,  tec9 ,999999)
       end
       if  777@==3
       then
         actor.GiveWeaponAndAmmo( npc, microuzi,999999)
       end
       if  777@==4
       then
         actor.GiveWeaponAndAmmo( npc, shotgun ,999999)
       end
       if  777@==5
       then
         actor.GiveWeaponAndAmmo( npc, sawnoff ,999999)
       end
       if  777@==6
       then
         actor.GiveWeaponAndAmmo( npc,combatshotgun  ,999999)
       end
       if  777@==7
       then
         actor.GiveWeaponAndAmmo( npc, DesertEagle ,999999)
       end
      actor.Health( npc ) =  300
      0446: set_actor npc dismemberment_possible 0
      07FE: set_actor npc fighting_style_to 5 moves 6
      0946: set_actor npc actions_uninterupted_by_weapon_fire 0
     07DD: set_actor npc attack_rate 75 // previously known as temper_to
      
      actor.WeaponAccuracy(npc)= 75
      081A: set_actor npc weapon_skill_to 1
      04D8: set_actor npc drowns_in_water 1 
      09B5: set_actor npc signal_after_kill 0  
      077A: set_actor npc acquaintance 4 to_actors_pedtype 0 // see ped.dat
      077A: set_actor npc acquaintance 4 to_actors_pedtype 1 // see ped.dat
      077A: set_actor npc acquaintance 4 to_actors_pedtype 8 // see ped.dat
      077A: set_actor npc acquaintance 4 to_actors_pedtype 6 // see ped.dat
     060B: set_actor  npc  decision_maker_to 426@
     
      if actor.Driving( npc)
      then
         0713: actor npc driveby_actor player1 car -1 point 0.0 0.0 0.0 radius 300.0 4 1 firing_rate 100 
      end
return

:npc_ped_setup
if actor_defined  npc
return_if_false  
      actor.Health( npc ) =  200
      0446: set_actor npc dismemberment_possible 0
      07FE: set_actor npc fighting_style_to 4 moves 6 
     07DD: set_actor npc attack_rate 40 // previously known as temper_to
      
      actor.WeaponAccuracy(npc)= 35
      081A: set_actor npc weapon_skill_to 1
      04D8: set_actor npc drowns_in_water 1 
      09B5: set_actor npc signal_after_kill 0  
      077A: set_actor npc acquaintance 3 to_actors_pedtype 0 // see ped.dat
      077A: set_actor npc acquaintance 3 to_actors_pedtype 1 // see ped.dat
      077A: set_actor npc acquaintance 3 to_actors_pedtype 8 // see ped.dat
      077A: set_actor npc acquaintance 3 to_actors_pedtype 6 // see ped.dat
     060B: set_actor  npc  decision_maker_to 426@
      
return